#pragma once

#include "Data.h"

class SString
{
public:

    SString();
    SString( const char* c_str);
    SString( const SString& other);
	~SString();

    SString& operator=(const SString& name);
    SString& operator=(const char* str);

    operator const char*() const;

    bool Equals(const char* pcStr) const;

	static void StaticInit();
	static void StaticShutdown();

	friend bool operator==(const SString& s1, const SString& s2);
	friend bool operator==(const SString& s1, const char* s2);
	friend bool operator==(const char* s1, const SString& s2);
	friend bool operator==(const SString& s1, const DString& s2);
	friend bool operator==(const DString& s1, const SString& s2);

	friend bool operator!=(const SString& s1, const SString& s2);
	friend bool operator!=(const SString& s1, const char* s2);
	friend bool operator!=(const char* s1, const SString& s2);
	friend bool operator!=(const SString& s1, const DString& s2);
	friend bool operator!=(const DString& s1, const SString& s2);

private:
	struct SStrData* mData;
};

typedef SString ss_t;


	